#ifndef __VERTEX_ARRAY_HPP__
#define __VERTEX_ARRAY_HPP__
#include "vertex_buffer_layout.hpp"

class VertexBuffer;

struct Vec4 {
    float x, y, z, w;
};
struct Vec3 {
    float x, y, z;
};
struct Vec2 {
    float x, y;
};

struct VertexFormat {
    Vec3 position;
    Vec4 color;
    Vec2 uv;
    float texture_id;
};


class VertexArray
{
    unsigned int _rendererID;
public:
    VertexArray();
    ~VertexArray();

    void addBuffer( VertexBuffer const& vb, VertexBufferLayout const& layout );

    void addBuffer( VertexBuffer const& vb );

    void bind() const;
    void unbind() const;
};

#endif // !__VERTEX_ARRAY_HPP__
